import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 26727
 * Date: 2024-03-25
 * Time: 10:23
 */
public class JDBCInsert {
    public static void main(String[] args) throws SQLException {
        Scanner sc = new Scanner(System.in);
        //JDBC需要通过以下步骤完成开发
        //1. 创建并初始化一个数据源(数据从哪里来,描述数据库服务器在哪里)
        DataSource dataSource = new MysqlDataSource();//接口 向上转型
        //URL计算机里的常见术语,唯一资源定位符,描述网络上的某个资源所在位置
        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/test1?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("111111");
        //2. 和数据库服务器建立连接
        Connection connection = dataSource.getConnection();
        //3.从控制台输入
        System.out.println("请输入学生的姓名：");
        String name = sc.next();
        System.out.println("请输入学生的学号：");
        int id = sc.nextInt();
        //4. 构造SQL语句
        //不美观，且容易出错
        // String sql = "insert into student values("+ id +",'"+name+"')";
        String sql = "insert into student values(?,?)";
        PreparedStatement statement = connection.prepareStatement(sql);
        statement.setInt(1,id);
        statement.setString(2,name);
        //打印需要加在拼接之后
        System.out.println(statement);
        //5. 执行SQL语句
        int ret = statement.executeUpdate();
        System.out.println("ret = " + ret);
        //6. 释放必要的资源
        statement.close();
        connection.close();
    }

}
